﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using KTXD.Entities;
using KTXD.Data;
using System.Data;

namespace UserKTXD.DCTEDU_.QuanLy
{
    public partial class QLThanhVien : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                Pager1.CurrentIndex = 1;
                Bind_Data(Pager1.CurrentIndex);
            }
        }

        protected void Bind_Data(int PageNo)
        {
            try
            {
                int TotalRows = 0;
                string WhereClause = "1=1";
                DataSet dsThanhVien = DataRepository.Provider.ExecuteDataSet("ThanhVien_GetPaged", WhereClause, "NgayCapNhat DESC", PageNo - 1, Pager1.PageSize);
                gridCatalog.DataSource = dsThanhVien.Tables[0];
                gridCatalog.DataBind();
                try
                {
                    TotalRows = Convert.ToInt32(dsThanhVien.Tables[1].Rows[0][0]);
                }
                catch (Exception)
                {
                }
                Pager1.ItemCount = TotalRows;
                if (TotalRows <= Pager1.PageSize)
                    Pager1.Visible = false;
                else
                    Pager1.Visible = true;
            }
            catch (Exception)
            {
            }
        }

        protected void Pager1_Command(object sender, CommandEventArgs e)
        {
            int currnetPageIndex = Convert.ToInt32(e.CommandArgument);
            Pager1.CurrentIndex = currnetPageIndex;
            Bind_Data(currnetPageIndex);
        }

        protected void cmdSave_Click(object sender, ImageClickEventArgs e)
        {
            try
            {
                string TenTruyCap = Common.StandardString(txtTenTruyCap.Text);
                if (H_CatalogId.Value.Length == 0 && DataRepository.ThanhVienProvider.GetByTenTruyCap(TenTruyCap) != null)
                {
                    lblStatus.Text = "Tên truy cập đã tồn tại, xin vui lòng chọn tên khác!";
                    return;
                }
                ThanhVien entThanhVien = new ThanhVien();
                entThanhVien.Id = Convert.ToInt32(H_CatalogId.Value);
                entThanhVien.HoTen = Common.StandardString(txtHoTen.Text);
                entThanhVien.TenTruyCap = TenTruyCap;
                entThanhVien.MatKhau = txtMatKhau.Text;
                entThanhVien.NgayCapNhat = Common.GetServerDateTime();
                entThanhVien.TrangThai = chkTinNong.Checked;
                entThanhVien.ChucVu = txtChucVu.Text;
                entThanhVien.QueQuan = txtQueQuan.Text;
                entThanhVien.SoDienThoai = txtSoDienThoai.Text;
                entThanhVien.NgaySinh = DateTime.ParseExact(Common.StandardString(txtNgaySinh.Text), "dd/MM/yyyy", null);
                bool updateStatus = false;
                try
                {
                    if (entThanhVien.Id == 0)
                    {
                        entThanhVien.Id = 0;
                        updateStatus = DataRepository.ThanhVienProvider.Insert(entThanhVien);
                    }
                    else
                    {
                        entThanhVien.EntityState = EntityState.Changed;
                        updateStatus = DataRepository.ThanhVienProvider.Update(entThanhVien);
                    }
                    if (!updateStatus)
                    {
                        ScriptManager.RegisterStartupScript(UpdatePanel1, this.GetType(), Constants.THATBAI, "alert('Cập nhật Người dùng không thành công. Vui lòng thử lại. Xin cảm ơn!');", true);
                    }
                    else
                    {
                        H_CatalogId.Value = "0";
                        txtHoTen.Text = "";
                        txtMatKhau.Text = "";
                        txtTenTruyCap.Text = "";
                        txtChucVu.Text = "";
                        txtNgaySinh.Text = "";
                        txtQueQuan.Text = "";
                        txtSoDienThoai.Text = "";
                        chkTinNong.Checked = true;
                        Pager1.CurrentIndex = 1;
                        Bind_Data(Pager1.CurrentIndex);
                    }
                }
                catch (Exception)
                {
                    ScriptManager.RegisterStartupScript(UpdatePanel1, this.GetType(), Constants.THATBAI, "alert('Cập nhật Người dùng không thành công. Vui lòng thử lại. Xin cảm ơn!');", true);
                }
            }
            catch (Exception)
            {
                ScriptManager.RegisterStartupScript(UpdatePanel1, this.GetType(), Constants.THATBAI, "alert('Cập nhật Người dùng không thành công. Vui lòng thử lại. Xin cảm ơn!');", true);
            }
        }

        protected void cmdReset_Click(object sender, ImageClickEventArgs e)
        {
            H_CatalogId.Value = "0";
            txtHoTen.Text = "";
            txtMatKhau.Text = "";
            txtTenTruyCap.Text = "";
            lblStatus.Text = "";
            txtChucVu.Text = "";
            txtNgaySinh.Text = "";
            txtQueQuan.Text = "";
            txtSoDienThoai.Text = "";
            chkTinNong.Checked = true;
        }

        protected void gridCatalog_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                e.Row.Attributes["onmouseover"] = "this.style.cursor='hand';this.style.backgroundColor='WhiteSmoke';";
                e.Row.Attributes["onmouseout"] = "this.style.backgroundColor='White';";

                LinkButton l = (LinkButton)e.Row.FindControl("cmdDelete");
                l.Attributes.Add("onclick", "javascript:return " + "confirm('Bạn chắc chắn muốn xóa thông tin này?');");
            }
        }

        protected void gridCatalog_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            if (e.CommandName == "Delete")
            {
                try
                {
                    int IdThanhVien = Convert.ToInt32(e.CommandArgument.ToString());
                    bool deleteStatus = DataRepository.ThanhVienProvider.Delete(IdThanhVien);
                    if (!deleteStatus)
                    {
                        ScriptManager.RegisterStartupScript(UpdatePanel1, this.GetType(), Constants.THATBAI, "alert('Xóa Người dùng không thành công. Vui lòng thử lại. Xin cảm ơn!');", true);
                    }
                    else
                    {
                        Pager1.CurrentIndex = 1;
                        Bind_Data(Pager1.CurrentIndex);
                        H_CatalogId.Value = "0";
                        txtHoTen.Text = "";
                        txtMatKhau.Text = "";
                        txtTenTruyCap.Text = "";
                        txtChucVu.Text = "";
                        txtNgaySinh.Text = "";
                        txtQueQuan.Text = "";
                        txtSoDienThoai.Text = "";
                        chkTinNong.Checked = true;
                    }
                }
                catch (Exception)
                {
                    ScriptManager.RegisterStartupScript(UpdatePanel1, this.GetType(), Constants.THATBAI, "alert('Xóa Người dùng không thành công. Vui lòng thử lại. Xin cảm ơn!');", true);
                    return;
                }
            }
            if (e.CommandName == "Select")
            {
                try
                {
                    int IdThanhVien = Convert.ToInt32(e.CommandArgument.ToString());
                    ThanhVien entThanhVien = DataRepository.ThanhVienProvider.GetById(IdThanhVien);
                    if (entThanhVien != null)
                    {
                        H_CatalogId.Value = entThanhVien.Id.ToString();
                        txtHoTen.Text = entThanhVien.HoTen;
                        txtTenTruyCap.Text = entThanhVien.TenTruyCap;
                        txtChucVu.Text = entThanhVien.ChucVu;
                        txtNgaySinh.Text = entThanhVien.NgaySinh.ToString("dd/MM/yyyy");
                        txtQueQuan.Text = entThanhVien.QueQuan;
                        txtSoDienThoai.Text = entThanhVien.SoDienThoai;
                        chkTinNong.Checked = entThanhVien.TrangThai;
                    }
                }
                catch (Exception)
                {
                    return;
                }
            }
        }
    }
}